perm filename PRCAUX.HDR[AL,HE] blob sn#290114 filedate 1977-06-28 generic text, type T, neo UTF8
EXTERNAL ITEMVAR SIMPLE PROCEDURE TRESUME(ITEMVAR P,V;INTEGER F(0));

EXTERNAL RECORD_CLASS COMMAND(ITEMVAR OP;
			RECORD_POINTER(ANY_CLASS) REC;INTEGER INT);

EXTERNAL RECORD_POINTER(COMMAND) PROCEDURE 
	NEW_COMMAND(ITEMVAR OP;
		RECORD_POINTER(ANY_CLASS) REC(NULL_RECORD);INTEGER INT(0));

EXTERNAL PROCEDURE MK_STDCMD(REFERENCE ITEMVAR IDI;
			REFERENCE RECORD_POINTER(COMMAND) IDR;
			STRING ID);

DEFINE SCINX=0;

DEFINE STDCMD(TNL,ID,SID,IDR,SIDR,INITXX)"<>" =
	<ASSIGNC IDR=CVPS(ID)&"_REC";
	 IFCR LENGTH(CVPS(SID)) THENC
		ASSIGNC SIDR="R"&CVPS(SID);
		IFCR ¬DECLARATION(ID) THENC
		DEFINE ID = CVPS(SID); ENDC
		IFCR ¬DECLARATION(IDR) THENC
		DEFINE IDR = CVPS(SIDR);ENDC
	 ENDC
	 TNL RECORD_POINTER(COMMAND) IDR;
	 TNL RECORD_POINTER(COMMAND) ITEMVAR ID
	 IFCR ¬EQU(CVPS(TNL),"EXTERNAL") THENC
	 ;
	 REDEFINE SCINX=SCINX+1;
	 ASSIGNC INITXX = "SCINI"&CVMS(SCINX);
	 SIMPLE PROCEDURE INITXX;
		MK_STDCMD(ID,IDR,CVPS(ID));
	 REQUIRE INITXX INITIALIZATION
	 ENDC>;

STDCMD(EXTERNAL,OK);	! a common result;
STDCMD(EXTERNAL,LOSER);	! a common result;
STDCMD(EXTERNAL,DIE); 	! go commit suicide;

STDCMD(EXTERNAL,GET_STATUS,GTSTS); ! asks for internal status info 
					(may have various meanings);

STDCMD(EXTERNAL,GET_NEXT,GTNXT); ! asks for next element from record generator;

EXTERNAL RECORD_POINTER(ANY_CLASS) 
		RECURSIVE PROCEDURE REC_RESUME(ITEMVAR PRC;
			RECORD_POINTER(ANY_CLASS) REC(NULL_RECORD);
			INTEGER OPTS(0));

EXTERNAL SIMPLE PROCEDURE PRCERR(STRING MSG);

REQUIRE "PRCAUX.REL[AL,HE]" LOAD_MODULE;